/**
 * 
 */
package cupiPhoneMundo;

import uniandes.cupi2.collections.trie.ElementoExisteException;
import uniandes.cupi2.collections.trie.ElementoNoExisteException;
import uniandes.cupi2.collections.trie.PalabraInvalidaException;
import uniandes.cupi2.collections.trie.Trie;

/**
 * @author Andres Felipe
 * 
 */
public class Diccionario
{
    // --------------------------------
    // Atributos
    // --------------------------------

    /**
     * Arbol de caracteres que guarda las palabras del diccionario
     */
    private Trie listaPalabras;
    
    private int cantidadPalabrasDiccionario;

    public Diccionario( )
    {
        listaPalabras = new Trie();
        cantidadPalabrasDiccionario = 0;
    }

    public int darNumeroPalabrasDiccionario( )
    {
        return cantidadPalabrasDiccionario;
    }

    public void eliminarPalabra( String palabra ) throws ElementoNoExisteException, PalabraInvalidaException
    {
        try
        {
            listaPalabras.eliminar( palabra );
        }
        catch( ElementoNoExisteException e )
        {
            throw new ElementoNoExisteException( "La palabra " + palabra + " no existe" );
        }
        catch( PalabraInvalidaException e )
        {
            throw new PalabraInvalidaException( "Palabra invalida" );
        }

    }

    public void agregarPalabra( String palabra )
    {
        try
        {
            listaPalabras.insertar( palabra );
            cantidadPalabrasDiccionario++;
        }
        catch( ElementoExisteException e )
        {
            
        }
        catch( PalabraInvalidaException e )
        {
            
        }

    }
   

}
